import requests
import json

api_key = "3JfseJAtFtTT8EcqIqzPY1uL"
secret_key = "tegmRbkwY9twbfGig0XW0WOudwSdzukF"

class BaiduLLM:
    def __init__(self):
        self.api_key = api_key
        self.secret_key = secret_key
        self.access_token = None
        self.temperature = 0.5
        self.top_p = 0.9

    def get_access_token(self):
        """
        使用 API Key，Secret Key 获取access_token
        """
        url = f"https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id={self.api_key}&client_secret={self.secret_key}"
        headers = {
            'Content-Type': 'application/json',
            'Accept': 'application/json'
        }
        response = requests.post(url, headers=headers)
        self.access_token = response.json().get("access_token")
        return self.access_token

    def chat(self, message):
        """
        发送请求到API并返回结果
        """
        if not self.access_token:
            self.get_access_token()

        url = f"https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/completions?access_token={self.access_token}"
        payload = json.dumps({
            "messages": [
                {
                    "role": "user",
                    "content": message
                }
            ],
            "temperature": self.temperature,
            "top_p": self.top_p,
            "stream": False
        })
        headers = {
            'Content-Type': 'application/json'
        }
        response = requests.post(url, headers=headers, data=payload)
        return json.loads(response.text)['result']


if __name__ == '__main__':
    
    llm = BaiduLLM()


    PROMPT_TEMPLTE_Q_COMMEND = '''根据下面知识库信息和用户的提问，帮用户生成3-5个不同的偏好问题，一定要保证生成的问题可以在知识库信息中找到答案。生成的问题仅以python中的json列表格式返回，其他额外信息不要输出。
    知识库信息：
    {context}
    用户提问：
    {query}
    生成的偏好问题的json为：'''

    query = r'长江海豚是几级保护动物？'
    context = '''------------------------
content: 标题：国家重点保护野生动物名录
关键字：重点 野生 保护 名录
内容：
2021年2月5日，新的国家重点保护野生动物名录正式公布。在全部保留原名录所有物种的基础上，新名录新增517种（类）野生动物。豺、长江江豚等65种由国家二级保护野生动物升为一级。
内容分类：公共服务类
提供单位：市绿化和市容管理局
------------------------
------------------------
content: 标题：猎捕国家一级保护陆生野生动物审批（新办）
关键字：一级保护 野生动物 猎捕证 初审
内容：
  
******猎捕国家一级保护陆生野生动物审批（新办）******
**  
**
**一、摘要信息**
 实施主体|  上海市绿化和市容管理局|  业务办理项编码|  113100006810339315231010085200101  
---|---|---|---  
 办件类型|  承诺件|  服务对象|  自然人,企业法人  
 法定办结时限|  20（工作日）|  法定办结时限说明|  
  
 承诺办结时限|  5（工作日）|  承诺办结时限说明|  自受理申请之日起，5个工作日内办结。  
办理地点| 上海市静安区江宁路街道胶州路768号上海市绿化和市容管理局（上海市林业局）1楼政务服务综合受理窗口1号窗口  
<sp
内容分类：公共服务类
提供单位：市绿化和市容管理局
------------------------
------------------------
content: 标题：中华人民共和国野生动物保护法
关键字：中华人民共和国野生动物保护法
内容：
中华人民共和国野生动物保护法
中华人民共和国主席令
第一二六号
《中华人民共和国野生动物保护法》已由中华人民共和国第十三届全国人民代表大会常务委员会第三十八次会议于2022年12月30日修订通过，现予公布，自2023年5月1日起施行。
中华人民共和国主席习近平
2022年12月30日
  
（1988年11月8日第七届全国人民代表大会常务委员会第四次会议通过
根据2004年8月28日第十届全国人民代表大会常务委员会第十一次会议《关于修改〈中华人民共和国野生动物保护法〉的决定》第一次修正
根据2009年8月27日第十一届全国人民代表大会常务委员会第十次会议《关于修改部分法律的决定》第二次修正
2016年7月2日第十二届全国人民代表大会常务委员会第二十一次会议第一次修订
根据2018年10月26日第十三届全国人民代表大会常务委员会第六次会议《关于修改〈中华人民共和国野生动物保护法〉等十五部法律的决定》第三次修正 2022年12月30日第十三届全国人民代表大会常务委员会第三十八次会议第二次修订）
**  
**
**目录**
第一章 总则
第二章 野生动物及其栖息地保护
第三章 野生动物管理
第四章 法律责任
第五章 附则
**第一章 总则**
第一条 为了保护野生动物，拯救珍贵、濒危野生动物，维护生物多样性和生态平衡，推进生态文明建设，促进人与自然和谐共生，制定本法。
第二条 在中华人民共和国领域及管辖的其他海域，从事野生动物保护及相关活动，适用本法。
本法规定保护的野生动物，是指珍贵、濒危的陆生、水生野生动物和有重要生态、科学、社会价值的陆生野生动物。
本法规定的野生动物及其制品，是指野生动物的整体（含卵、蛋）、部分及衍生物。
珍贵、濒危的水生野生动物以外的其他水生野生动物的保护，适用《中华人民共和国渔业法》等有关法律的规定。
第三条 野生动物资源属于国家所有。
国家保障依法从事野生动物科学研究、人工繁育等保护及相关活动的组织和个人的合法权益。
第四条 国家加强重要生态系统保护和修复，对野生动物实行保护优先、规范利用、严格监管的原则，鼓励和支持开展野生动物科学研究与应用，秉持生态文明理念，推动绿色发展。
第五条 国家保护野生动物及其栖息地。县级以上人民政府应当制定野生动物及其栖息地相关保护规划和措施，并将野生动物保护经费纳入预算。
国家鼓励公民、法人和其他组织依法通过捐赠、资助、志愿服务等方式参与野生动物保护活动，支持野生动物保护公益事业。
本法规定的野生动物栖息地，是指野生动物野外种群生息繁衍的重要区域。
<p style="margin: 15px 0px 0px; padding: 0px; line-hei
内容分类：政策类
提供单位：市绿化和市容管理局
------------------------'''

    response = llm.chat(PROMPT_TEMPLTE_Q_COMMEND.format(query=query, context=context))

    print(response)
